-
-
Notifications
You must be signed in to change notification settings - Fork 30.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add link flags for grpc armv7 wheels (attempt #2) #63521
Conversation
Add link flags, as another attempt of PR home-assistant#63518 with two differences: - Don't quote docker env flags, since the quotes are treated as part of the variable. (My previous attempts at testing this were with pip3 commands and environment variables inside docker build phase, and not using --env-file.) - Add grpcio to the skip-binary list so that the armv7 build does not attempt to use an existing wheel, but instead always builds from source (this is why it succeeded). The idea here being that we want to ensure we use a wheel built specifically for alpine rather than a generic arm wheel.
Try again PR home-assistant#63493 to kick off grpcio wheel build. This should not be merged until home-assistant#63521 which sets flags to build grpcio from source with all the required link flags.
Here is some additional context for how I tested the two changes manually. Instead of using the stripped down builder, I used the environment that invokes the wheel builder. It's not exactly the same as what runs on CI, but much closer. There are a set of commands in https://github.com/allenporter/home-assistant-wheels/tree/issue-grpc/docker that basically set environment variables and attempt to create docker containers than run the wheel builder. Here are some more details on how I manually tested the two additional changes. I ran these on both amd64 and armv7 and they both had the same result. For bug 1I reproduced the failure we saw last attempt with the quotes in the --env-file:
Then, running that again without the quotes in the --env-file:
So I have higher confidence this will work. For bug 2I previously added --skip-binary="grpcio" in my local wheel builder as I saw it attempting to reuse an existing wheel when manually testing, similar to what we saw on CI for armv7. I forgot to add this in the original PR to update the link flags. I also tested this again with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, lets try again 👍
Proposed change
Add link flags, as another attempt of PR #63518 with two differences:
Original PR description:
Add
-lexecinfo
to the list of GRPC LDFLAGS, which allows the home assistant wheel builder to create wheels for armv7 grpc builds.This is needed because:
libexecinfo-dev
in the builderbacktrace
as part of the system library, however it can come from `-lexecinfoThis allows building a grpc 1.43.0 wheel on armv7 alpine 3.14 with python 3.9
GRPC currently does not have a way to add a single LDFLAG, so the existing LDFLAGS are copied until an option for that is added, which I can explore.
Type of change
Additional information
Checklist
black --fast homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
..coveragerc
.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: